#ifndef __UNIT_HPP__
#define __UNIT_HPP__

#include <vector>
#include <string>

// 工具类文件
namespace qihai
{
    // 字符流处理类
    struct StreamProcess
    {
        // 分割字符串
        // str 待切割字符串 mark 切割的标志 cont 待切割完存放的数组(push_back)
        // 比如: mark=" ",str = "ab c d" cont = {"ab", "c", "d"};
        static void SlicedString(const std::string& str, const std::string& mark, std::vector<std::string>& cont)
        {
            size_t markLen = mark.size(), strLen = str.size();
            size_t begin = 0, end = 0;
            while (end < strLen)
            {
                end = str.find(mark, begin);  // 从begin下标开始找到标志位，返回找到的下标
                if (end == std::string::npos) end = strLen;// 没找到
                if (end != begin)
                    cont.push_back(str.substr(begin, end - begin));  // 切分一位
                begin = end + markLen;
            }
        }
    };
}
#endif